{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorflow version:2.3.1\n"
     ]
    }
   ],
   "source": [
    "print('Tensorflow version:{}'.format(tf.__version__))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From <ipython-input-3-0c46f1c8b4ad>:2: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use `tf.config.list_physical_devices('GPU')` instead.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 测试gpu是否可以使用\n",
    "tf.test.is_gpu_available()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow import keras\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 加载fashion_mnist数据集\n",
    "fashion_mnist = keras.datasets.fashion_mnist\n",
    "(train_images,train_labels),(test_images,test_labels) = fashion_mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对图片数据进行扩维\n",
    "train_images = np.expand_dims(train_images,-1) # 在最后一个维度上进行扩张"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_images = np.expand_dims(test_images,-1) # 在最后一个维度上进行扩张"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "model= tf.keras.Sequential() # 顺序模型\n",
    "# 第一层使用卷积层，卷积层提取图片特征的能力强   32-fliter个数  (3,3)-卷积核大小，一般使用3*3或5*5  input_shape-图片大小\n",
    "model.add(tf.keras.layers.Conv2D(64,(3,3),input_shape=train_images.shape[1:],activation='relu',padding='same'))\n",
    "model.add(tf.keras.layers.Conv2D(64,(3,3),activation='relu',padding='same'))\n",
    "# 最大池化层\n",
    "model.add(tf.keras.layers.MaxPool2D())\n",
    "# 抑制过拟合\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "# 卷积核以2的指数增长\n",
    "model.add(tf.keras.layers.Conv2D(128,(3,3),activation='relu',padding='same'))\n",
    "model.add(tf.keras.layers.Conv2D(128,(3,3),activation='relu',padding='same'))\n",
    "# 最大池化层\n",
    "model.add(tf.keras.layers.MaxPool2D())\n",
    "# 抑制过拟合\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "model.add(tf.keras.layers.Conv2D(256,(3,3),activation='relu',padding='same'))\n",
    "model.add(tf.keras.layers.Conv2D(256,(3,3),activation='relu',padding='same'))\n",
    "# 抑制过拟合\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "# 全局平均池化：得到一个二维的数据\n",
    "model.add(tf.keras.layers.GlobalAveragePooling2D())\n",
    "# Dense 输出层：输出一个维度为10的数据  softmax:输出概率值\n",
    "model.add(tf.keras.layers.Dense(256,activation='relu'))\n",
    "model.add(tf.keras.layers.Dense(10,activation='softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d (Conv2D)              (None, 28, 28, 64)        640       \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 28, 28, 64)        36928     \n",
      "_________________________________________________________________\n",
      "max_pooling2d (MaxPooling2D) (None, 14, 14, 64)        0         \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 14, 14, 64)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 14, 14, 128)       73856     \n",
      "_________________________________________________________________\n",
      "conv2d_3 (Conv2D)            (None, 14, 14, 128)       147584    \n",
      "_________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2 (None, 7, 7, 128)         0         \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 7, 7, 128)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_4 (Conv2D)            (None, 7, 7, 256)         295168    \n",
      "_________________________________________________________________\n",
      "conv2d_5 (Conv2D)            (None, 7, 7, 256)         590080    \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 7, 7, 256)         0         \n",
      "_________________________________________________________________\n",
      "global_average_pooling2d (Gl (None, 256)               0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 256)               65792     \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 10)                2570      \n",
      "=================================================================\n",
      "Total params: 1,212,618\n",
      "Trainable params: 1,212,618\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对模型进行配置\n",
    "model.compile(optimizer='adam',\n",
    "             loss='sparse_categorical_crossentropy',\n",
    "             metrics=['acc'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/30\n",
      "1875/1875 [==============================] - 895s 478ms/step - loss: 0.8041 - acc: 0.7017 - val_loss: 0.4595 - val_acc: 0.8395\n",
      "Epoch 2/30\n",
      "1875/1875 [==============================] - 947s 505ms/step - loss: 0.4316 - acc: 0.8399 - val_loss: 0.3974 - val_acc: 0.8531\n",
      "Epoch 3/30\n",
      "1875/1875 [==============================] - 812s 433ms/step - loss: 0.3675 - acc: 0.8648 - val_loss: 0.3175 - val_acc: 0.8822\n",
      "Epoch 4/30\n",
      "1875/1875 [==============================] - 769s 410ms/step - loss: 0.3327 - acc: 0.8777 - val_loss: 0.3256 - val_acc: 0.8787\n",
      "Epoch 5/30\n",
      "1875/1875 [==============================] - 79847s 43s/step - loss: 0.3136 - acc: 0.8835 - val_loss: 0.3146 - val_acc: 0.8879\n",
      "Epoch 6/30\n",
      "1875/1875 [==============================] - 963s 514ms/step - loss: 0.2949 - acc: 0.8916 - val_loss: 0.2640 - val_acc: 0.9038\n",
      "Epoch 7/30\n",
      "1875/1875 [==============================] - 906s 483ms/step - loss: 0.2826 - acc: 0.8955 - val_loss: 0.2964 - val_acc: 0.8886\n",
      "Epoch 8/30\n",
      "1875/1875 [==============================] - 1056s 563ms/step - loss: 0.2729 - acc: 0.8984 - val_loss: 0.2584 - val_acc: 0.9063\n",
      "Epoch 9/30\n",
      "1875/1875 [==============================] - 1006s 537ms/step - loss: 0.2694 - acc: 0.9014 - val_loss: 0.2602 - val_acc: 0.9067\n",
      "Epoch 10/30\n",
      "1875/1875 [==============================] - 950s 507ms/step - loss: 0.2633 - acc: 0.9032 - val_loss: 0.2559 - val_acc: 0.9072\n",
      "Epoch 11/30\n",
      "1875/1875 [==============================] - 895s 478ms/step - loss: 0.2604 - acc: 0.9036 - val_loss: 0.2748 - val_acc: 0.9050\n",
      "Epoch 12/30\n",
      "1875/1875 [==============================] - 971s 518ms/step - loss: 0.2583 - acc: 0.9050 - val_loss: 0.2399 - val_acc: 0.9113\n",
      "Epoch 13/30\n",
      "1875/1875 [==============================] - 869s 463ms/step - loss: 0.2526 - acc: 0.9072 - val_loss: 0.2394 - val_acc: 0.9126\n",
      "Epoch 14/30\n",
      "1875/1875 [==============================] - 860s 459ms/step - loss: 0.2527 - acc: 0.9057 - val_loss: 0.2701 - val_acc: 0.9059\n",
      "Epoch 15/30\n",
      "1875/1875 [==============================] - 863s 460ms/step - loss: 0.2524 - acc: 0.9078 - val_loss: 0.2421 - val_acc: 0.9093\n",
      "Epoch 16/30\n",
      "1875/1875 [==============================] - 860s 459ms/step - loss: 0.2510 - acc: 0.9085 - val_loss: 0.2622 - val_acc: 0.9066\n",
      "Epoch 17/30\n",
      "1875/1875 [==============================] - 872s 465ms/step - loss: 0.2468 - acc: 0.9103 - val_loss: 0.2354 - val_acc: 0.9153\n",
      "Epoch 18/30\n",
      "1875/1875 [==============================] - 867s 463ms/step - loss: 0.2477 - acc: 0.9096 - val_loss: 0.2387 - val_acc: 0.9119\n",
      "Epoch 19/30\n",
      "1875/1875 [==============================] - 866s 462ms/step - loss: 0.2437 - acc: 0.9108 - val_loss: 0.2389 - val_acc: 0.9122\n",
      "Epoch 20/30\n",
      "1875/1875 [==============================] - 863s 460ms/step - loss: 0.2476 - acc: 0.9086 - val_loss: 0.2279 - val_acc: 0.9138\n",
      "Epoch 21/30\n",
      "1875/1875 [==============================] - 871s 464ms/step - loss: 0.2402 - acc: 0.9120 - val_loss: 0.2497 - val_acc: 0.9095\n",
      "Epoch 22/30\n",
      "1875/1875 [==============================] - 864s 461ms/step - loss: 0.2381 - acc: 0.9134 - val_loss: 0.2236 - val_acc: 0.9174\n",
      "Epoch 23/30\n",
      "1875/1875 [==============================] - 867s 462ms/step - loss: 0.2381 - acc: 0.9119 - val_loss: 0.2627 - val_acc: 0.9078\n",
      "Epoch 24/30\n",
      "1875/1875 [==============================] - 865s 461ms/step - loss: 0.2391 - acc: 0.9131 - val_loss: 0.2639 - val_acc: 0.9024\n",
      "Epoch 25/30\n",
      "1875/1875 [==============================] - 870s 464ms/step - loss: 0.2409 - acc: 0.9125 - val_loss: 0.2416 - val_acc: 0.9152\n",
      "Epoch 26/30\n",
      "1875/1875 [==============================] - 868s 463ms/step - loss: 0.2355 - acc: 0.9142 - val_loss: 0.2484 - val_acc: 0.9116\n",
      "Epoch 27/30\n",
      "1875/1875 [==============================] - 868s 463ms/step - loss: 0.2401 - acc: 0.9124 - val_loss: 0.2463 - val_acc: 0.9105\n",
      "Epoch 28/30\n",
      "1875/1875 [==============================] - 964s 514ms/step - loss: 0.2352 - acc: 0.9130 - val_loss: 0.2494 - val_acc: 0.9120\n",
      "Epoch 29/30\n",
      "1875/1875 [==============================] - 1103s 589ms/step - loss: 0.2413 - acc: 0.9124 - val_loss: 0.2399 - val_acc: 0.9181\n",
      "Epoch 30/30\n",
      "1875/1875 [==============================] - 1039s 554ms/step - loss: 0.2327 - acc: 0.9164 - val_loss: 0.2318 - val_acc: 0.9152\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(train_images,train_labels,epochs=30,validation_data = (test_images,test_labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['loss', 'acc', 'val_loss', 'val_acc'])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history.history.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x20d537881c8>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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7GvrgwRCYZ1oXCmlmrFd2GtdHKWUasl2Yd94Q5X22Sul1D62G43TWCohS/vslerx7n1tFau31XTqPof3TuPub41od70LL7yQsrIy/H4/t9xyCzfccANvv/02d9xxB6FQiOzsbN577z28Xi8333wzpaWliAh33303l1xySae2uTPYLuw93kjFSz2zV0odhqeffprMzEzq6uoYP348U6ZM4Xvf+x6LFy9mwIABVFVVAXD//feTnp7OypUrAdi9e3dXNrtN9gv7pjN7DXulerpozsCPlEceeYSXX34ZgLKyMmbMmMHEiRObxrdnZmYC8O677zJ79uym7TIyMo5+Y6Nguz77Kp/WxVFKHZ6FCxfy7rvvsmTJEj777DPGjh1LcXFxq8MejTE9Yqio7cLe463XLhyl1GGprq4mIyODpKQkvvrqKz766CPq6+tZtGgRGzduBGjqxpk8eTKPPvpo07bdtRvHfmGvN1QppQ7TOeecQzAYZPTo0fzqV7/ihBNOICcnhxkzZnDxxRdTXFzMFVdcAcBdd93F7t27GTlyJMXFxSxYsKCLW9862/XZV/kC5KdpXRyl1KFLSEjgrbfeavW9c889d7/XKSkpzJw582g067DY7sy+SiteKqVUC7YKe2MMHm9A++yVUuoAtgp7b6QuTrb22Sul1H5sFfY60bhSSrXOVmFf2VgETbtxlFJqP7YK+yq9e1YppVpls7C36uLoZONKKbU/W4W91sVRSnWFlJSUrm5Cu2x1U5XHGyBJ6+IoZR9v/QJ2rOzcfeaPgnN/37n77AFsdWavE40rpTrD7bffzl//+tem1/fccw/33nsvkyZN4rjjjmPUqFG8+uqrUe3L6/W2ud2zzz7L6NGjKS4u5pprrgFg586dXHTRRRQXF1NcXMyHH37YOQdljOlWP+PGjTOH6pqnPjYXPPr+IW+vlOp6q1ev7uommOXLl5uJEyc2vR42bJjZvHmzqa6uNsYYU1FRYQYNGmTC4bAxxpjk5OQ299XQ0NDqdl988YUZMmSIqaioMMYY4/F4jDHGXH755eahhx4yxhgTDAbNnj17Wuyztf9GQKk5SLbarBunnjyti6OUOkxjx45l165dbNu2jYqKCjIyMigoKODWW29l8eLFxMTEsHXrVnbu3El+fv5B92WM4Y477mix3fz587n00kvJzs4G9tXHnz9/Ps8++ywA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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch,history.history.get('acc'),label='acc')\n",
    "plt.plot(history.epoch,history.history.get('val_acc'),label='val_acc')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x20d57d0c548>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch,history.history.get('loss'),label='loss')\n",
    "plt.plot(history.epoch,history.history.get('val_loss'),label='val_loss')\n",
    "plt.legend()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
